Encoding a Dependent-Type Lambda-Calculus in a Logic Programming Language
نویسندگان
چکیده
Various forms of typed λ-calculi have been proposed as specification languages for representing wide varieties of object logics. The logical framework, LF, is an example of such a dependent-type λ-calculus. A small subset of intuitionistic logic with quantification over simply typed λ-calculus has also been proposed as a framework for specifying general logics. The logic of hereditary Harrop formulas with quantification at all non-predicate types, denoted here as hhω, is such a meta-logic that has been implemented in both the Isabelle theorem prover and the λProlog logic programming language. Both frameworks provide for specifications of logics in which details involved with free and bound variable occurrences, substitutions, eigenvariables, and the scope of assumptions within object logics are handled correctly and elegantly at the "meta" level. In this paper, we show how LF can be encoded into hhω in a direct and natural way by mapping the typing judgments in LF into propositions in the logic of hhω. This translation establishes a very strong connection between these two languages: the order of quantification in an LF signature is exactly the order of a set of hhω clauses, and the proofs in one system correspond directly to proofs in the other system. Relating these two languages makes it possible to provide implementations of proof checkers and theorem provers for logics specified in LF by using standard logic programming techniques which can be used to implement hhω. Comments University of Pennsylvania Department of Computer and Information Science Technical Report No. MSCIS-90-18. This technical report is available at ScholarlyCommons: http://repository.upenn.edu/cis_reports/530 Encoding A Dependent-Type A-Calculus In A Logic Programming Language MS-CIS-90-18 LINC LAB 166 Amy Felty Dale Miller Department of Computer and Information Science School of Engineering and Applied Science University of Pennsylvania Philadelphia, PA 19104
منابع مشابه
A Framework for Defining Logical Frameworks
In this paper, we introduce a General Logical Framework, called GLF, for defining Logical Frameworks, based on dependent types, in the style of the well known Edinburgh Logical Framework LF. The framework GLF features a generalized form of lambda abstraction where β-reductions fire provided the argument satisfies a logical predicate and may produce an n-ary substitution. The type system keeps t...
متن کاملA Lambda Calculus for Quantum Computation with Classical Control
In this paper, we develop a functional programming language for quantum computers, by extending the simply-typed lambda calculus with quantum types and operations. The design of this language adheres to the “quantum data, classical control” paradigm, following the first author’s work on quantum flow-charts. We define a call-by-value operational semantics, and we give a type system using affine ...
متن کاملDependent Types for Nominal Terms with Atom Substitutions
Nominal terms are an extended first-order language for specifying and verifying properties of syntax with binding. Founded upon the semantics of nominal sets, the success of nominal terms with regard to systems of equational reasoning is already well established. This work first extends the untyped language of nominal terms with a notion of non-capturing atom substitution for object-level names...
متن کاملA Logical View of Assignments
Imperative lambda calculus (ILC) is an abstract formal language obtained by extending the typed lambda calculus with imperative programming features, namely references and assignments. The language shares with typed lambda calculus important properties such as the Church-Rosser property and strong normalization. In this paper, we describe the logical symmetries that underly ILC by exhibiting a ...
متن کاملProof-Directed De-compilation of Low-Level Code
We present a proof theoretical method for de-compiling lowlevel code to the typed lambda calculus. We first define a proof system for a low-level code language based on the idea of Curry-Howard isomorphism. This allows us to regard an executable code as a proof in intuitionistic propositional logic. As being a proof of intuitionistic logic, it can be translated to an equivalent proof of natural...
متن کامل